<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>CacheFS</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/CacheFS"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-CacheFS rootpage-CacheFS skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">CacheFS</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>CacheFS</b> is a family of software technologies designed to speed up <a href="Distributed_file_system" class="mw-redirect" title="Distributed file system">distributed file system</a> file access for networked computers. They store copies (<a href="Web_cache" title="Web cache">caches</a>) of files on secondary memory, typically a local <a href="Hard_disk" class="mw-redirect" title="Hard disk">hard disk</a>, so that if a file is accessed again, it can be fetched locally at much higher speeds than networks typically allow.
</p><p>CacheFS software is used on several <a href="Unix-like" title="Unix-like">Unix-like</a> operating systems. The original Unix version was developed by <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> in 1993. Another version was written for Linux and released in 2003.
</p><p>Network filesystems are dependent on a <a href="Computer_network" title="Computer network">network</a> link and a remote <a href="Server_(computing)" title="Server (computing)">server</a>; obtaining a file from such a <a href="File_system" title="File system">filesystem</a> can be significantly slower than getting the file locally. For this reason, it can be desirable to cache data from these filesystems on a local disk, thus potentially speeding up future accesses to that data by avoiding the need to go to the network and fetch it again. The software has to check that the remote file has not changed since it was cached, but this is much faster than reading the whole file again.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Prior_art">Prior art</h2></div>
<p><a href="Sprite_(operating_system)" title="Sprite (operating system)">Sprite </a> used large disk block caches. These were located in main-memory to achieve high performance in its file system. The term CacheFS has found little or no use to describe caches in main memory.
</p>
<div class="mw-heading mw-heading2"><h2 id="Grossmont_version">Grossmont version</h2></div>
<p>The first CacheFS implementation, in 6502 assembler, was a write through cache developed by Mathew R Mathews at Grossmont College. It was used from fall 1986 to spring 1990 on three diskless 64 kB main memory Apple IIe computers to cache files from a Nestar file server onto Big Board, a 1 MB DRAM secondary memory device partitioned into CacheFS and TmpFS. The computers ran Pineapple DOS, an Apple DOS 3.3 derivative developed in the course of a follow on to WR Bornhorst's NSF funded Instructional Computing System. Pineapple DOS features, including caching, were unnamed; the name CacheFS was introduced seven years later by Sun Microsystems.
</p>
<div class="mw-heading mw-heading2"><h2 id="Sun_version">Sun version</h2></div>
<p>The first Unix CacheFS implementation was developed by <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> and released in the <a href="Solaris_(operating_system)" class="mw-redirect" title="Solaris (operating system)">Solaris 2.3</a> operating system release in 1993, as part of an expanded feature set for the <a href="Network_File_System_(protocol)" class="mw-redirect" title="Network File System (protocol)">NFS</a> or Network File System suite known as <a href="Open_Network_Computing_Remote_Procedure_Call" class="mw-redirect" title="Open Network Computing Remote Procedure Call">Open Network Computing Plus (ONC+)</a>.<sup id="cite_ref-SolarisNewFeatures25_1-0" class="reference"><a href="#cite_note-SolarisNewFeatures25-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> It was subsequently used in other UNIX operating systems such as <a href="IRIX" title="IRIX">IRIX</a> (starting with the 5.3 release in 1994).<sup id="cite_ref-IrixONC_2-0" class="reference"><a href="#cite_note-IrixONC-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-IrixHistory_3-0" class="reference"><a href="#cite_note-IrixHistory-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Linux_version">Linux version</h2></div>
<p><a href="Linux" title="Linux">Linux</a> operating systems now commonly use a new version of CacheFS developed by David Howells. Howells appears to have rewritten CacheFS from scratch, not using Sun's original code.
</p><p>The Linux CacheFS currently is designed to operate on <a href="Andrew_File_System" title="Andrew File System">Andrew File System</a> and <a href="Network_File_System" title="Network File System">Network File System</a> (NFS) filesystems.
</p>
<div class="mw-heading mw-heading3"><h3 id="Terminology">Terminology</h3></div>
<p>Because of its similar naming to FS-Cache, CacheFS' <a href="Terminology" title="Terminology">terminology</a> is confusing to outsiders. CacheFS is a backend for FS-Cache and handles the actual data storage and retrieval. FS-Cache passes the requests from netfs to CacheFS.
</p>
<div class="mw-heading mw-heading3"><h3 id="FS-Cache">FS-Cache</h3></div>
<p>The cache facility/layer between the cache backends just like CacheFS and NFS or AFS.
</p>
<div class="mw-heading mw-heading3"><h3 id="Cache_backends">Cache backends</h3></div>
<div class="mw-heading mw-heading4"><h4 id="CacheFS">CacheFS</h4></div>
<p>CacheFS is a Filesystem for the FS-Cache facility. A <a href="Block_device" class="mw-redirect" title="Block device">block device</a> can be used as cache by simply <a href="Mount_(computing)" title="Mount (computing)">mounting</a> it. Needs no special activation and is deactivated by unmounting it.
</p>
<div class="mw-heading mw-heading4"><h4 id="Cachefiles_(daemon)">Cachefiles (daemon)</h4></div>
<p><a href="Daemon_(computer_software)" class="mw-redirect" title="Daemon (computer software)">Daemon</a> using an existing filesystem (<a href="Ext3" title="Ext3">ext3</a> with <style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><span class="monospaced">user_xattr</span>) as cache. Cache is bound with "<span class="monospaced">cachefilesd -s</span>".
</p>
<div class="mw-heading mw-heading3"><h3 id="Project_status">Project status</h3></div>
<p>As of 2010, work on the project appeared to have stalled, and some people were attempting to revive the code and bring it up to date.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Features">Features</h3></div>
<p>The facility can be conceptualized by the following diagram:
</p><p><span class="mw-default-size" typeof="mw:File"></span>
</p><p>The facility (known as FS-Cache) is designed to be as transparent as possible to a user of the system. Applications should just be able to use NFS files as normal, without any knowledge of there being a cache.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Page_cache" title="Page cache">Page cache</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-SolarisNewFeatures25-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-SolarisNewFeatures25_1-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://docs.sun.com/app/docs/doc/802-1985/6i5vtjeid?a=view#02.Whats_New_Quick_Reference-6">New Features in Solaris 2.4</a> in the Solaris 2.4 AnswerBook documentation, Sun Microsystems, 1994. Accessed Sept 10, 2007</span>
</li>
<li id="cite_note-IrixONC-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-IrixONC_2-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_Admin/books/ONC3NFS_AG/sgi_html/ch01.html">IRIX 6.5 ONC3/NFS Administrators Guide</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070915150008/http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_Admin/books/ONC3NFS_AG/sgi_html/ch01.html">Archived</a> 2007-09-15 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, Silicon Graphics, 2005. Accessed Sept 10, 2007</span>
</li>
<li id="cite_note-IrixHistory-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-IrixHistory_3-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://ryan.tliquest.net/sgi/irix_versions.html#I5">History of IRIX</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20071019203914/http://ryan.tliquest.net/sgi/irix_versions.html#I5">Archived</a> 2007-10-19 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, Ryan Thoryk, revision of January 18, 2007. Accessed Sept 10, 2007</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">Gilliam, Paul <a rel="nofollow" class="external autonumber" href="https://www.redhat.com/archives/linux-cachefs/2010-September/msg00041.html">[1]</a>, "linux-cachefs mailing list", September 29, 2010</span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://people.redhat.com/~dhowells/fscache/fscache-ols2006.odp">Fscache-ols2006 Presentation</a></li>
<li><a rel="nofollow" class="external text" href="https://people.redhat.com/~dhowells/cachefs/">D.Howells@Red Hat</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20061216082149/http://people.redhat.com/steved/fscache/">Steve D.@Red Hat</a></li>
<li><a rel="nofollow" class="external text" href="https://listman.redhat.com/mailman/listinfo/linux-cachefs">Red Hat CacheFS mailinglist</a></li></ul>
<p>Outdated articles?
</p>
<ul><li><a rel="nofollow" class="external text" href="https://lwn.net/Articles/100321/">LWN.NET</a> A general caching filesystem</li>
<li><a rel="nofollow" class="external text" href="https://lwn.net/Articles/99597/">LWN.NET </a> Initial mail introducing cacheFS for Linux</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-10-21" href="https://en.wikipedia.org/wiki/?title=CacheFS&oldid=1252475105">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>